
# def fact(n):#计算n的阶乘
#     if n==0:
#         return 1#基例 ：防止递归函数无限递归 占用资源
#     else:
#         return n*fact(n-1)  #fact(n-1) n-1! #设置递归
# num=eval(input("请输入一个整数："))
# print(fact(abs(num)))

# import sys
# sys.setrecursionlimit(2000)#2000是新的递归层数
# def reverse(s):
#     if s=='':
#         return s
#     else:
#         return reverse(s[1:])+s[0]  #s[0]是首字符，是s[1:]是剩余字符串
# str=input("请输入一个字符串：")
# input(reverse(str))

#汉诺塔
def move(n,a,b,c):#n为圆盘数，a代表初始位圆柱，b代表过渡圆柱,c代表目标位圆柱
    if n==1:
        print(a,'-->',c)#设置基例
    else:
        move(n-1,a,c,b)#将初始位的n-1圆盘移动到过渡位，此时初始位为a，上一级函数的过渡位b
        print(a,'-->',c)
        move(n-1,b,a,c)#将过渡位的n-1个圆盘移动到目标位，此时初始位b，上一级函数的目标位c
move(10,'A','B','C')